package com.cy.pj.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.cy.pj.sys.entity.SysUser;
import com.cy.pj.sys.vo.SysUserDeptVo;

@Mapper
public interface SysUserDao {
	
	/**
	 * 	按条件获取总记录数
	 * @param username 模糊查询的条件
	 * @return
	 */
	int getRowCount(@Param("username") String username);
	
	/**
	 * 	按条件分页查询用户信息
	 * @param username
	 * @param startIndex
	 * @param pageSize
	 * @return
	 */
	List<SysUserDeptVo> findPageObjects(
		      @Param("username")String  username,
		      @Param("startIndex")Integer startIndex,
		      @Param("pageSize")Integer pageSize);
	
	/**
	 * 	用户禁用启用数据状态的修改
	 * @param id 用户id
	 * @param valid 用户状态
	 * @param modifiedUser 修改用户
	 * @return 修改行数
	 */
	int validById(@Param("id")Integer id,
				@Param("valid")Integer valid,
				@Param("modifiedUser")String modifiedUser);
	
	/**
	 * 	保存用户自身信息到数据库
	 * @param entity
	 * @return
	 */
	int insertObject(SysUser entity);
	
	/**
	 *	基于用户id查询用户相关信息
	 * @param id
	 * @return
	 */
	SysUserDeptVo findObjectById(Integer id);
	
	/**
	 * 	修改用户信息
	 * @param entity
	 * @return
	 */
	int updateObject(SysUser entity);
	
	@Select("select * from sys_users where username=#{username}")
	SysUser findUserByUserName(String username);
}



















